//引入axios 通过axios设置做出各种统一处理
import axios from 'axios'
import { ElMessage,ElMessageBox } from 'element-plus'

//创建axios实例并对其进行设置
const service = axios.create({
    baseURL:'/api',
    timeout: 10000
})
//axios请求拦截器:所有请求发出之前 进行拦截 添加必要参数
service.interceptors.request.use(config =>{
    //添加token

    return config;
},err=>{
    console.log(err)
    Promise.reject(err);
})

//axios响应拦截器:
service.interceptors.response.use(res=>{
    //代码进入此函数 代表HTTP响应状态码200
    const code = res.data.code;
    const msg = res.data.msg;

    if(code == 401){//登录过期
        //??????
    }else if(code == 500 || code == 600 || code == 601){
        ElMessage.error(msg);
        return Promise.reject(new Error(msg));
    }else if(code != 200){
        ElMessage.error(msg);
        return Promise.reject(new Error(msg));
    }else{
        return res.data.data;
    }
},
err =>{
    //获得错误信息
    const code = err.status;
    console.log(code)
    if(code == 500){
        ElMessage.error('服务器正忙，请稍后再试！')
    }else if(code == 404){
        ElMessage.error('服务器请求地址错误！')
    }else{
        ElMessage.error('请求出错，请稍后再试')
    }
    return Promise.reject(err)
})

//导出对象
export default service
